多臂老虎机MAB的代码实现
2.3 算法基本框架搭建2.4 epsilon贪心算法2.4.1 参数为0.01的绘图2.4.2 不同的参数2.4.3 值随时间衰减的 epsilon-贪婪算法
2.5 上置信界算法2.6汤普森采样算法2.7总结2.8 参考文献
2.3 算法基本框架搭建
# 导入需要使用的库,其中numpy是支持数组和矩阵运算的科学计算库,而matplotlib是绘图库
import numpy as np
import matplotlib.pyplot as plt
class BernoulliBandit:
""" 伯努利多臂老虎机,输入K表示拉杆个数 """
def __init__(self, K):
self.probs = np.random.uniform(size=K) # 随机生成K个0~1的数,作为拉动每根拉杆的获奖
# 概率
self.best_idx = np.argmax(self.probs) # 获奖概率最大的拉杆
self.best_prob = self.probs[self.best_idx] # 最大的获奖概率
self.K = K # 奖励最大的拉杆号
def step(self, k):
# 当玩家选择了k号拉杆后,根据拉动该老虎机的k号拉杆获得奖励的概率返回1(获奖)或0(未
# 获奖)
if np.random.rand() |